package com.boot.project.module.system.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.boot.project.core.model.result.ProfileResult;
import com.boot.project.core.model.system.criteria.UserCriteria;
import com.boot.project.core.model.system.dto.UserAssignDto;
import com.boot.project.core.model.system.dto.UserLoginDto;
import com.boot.project.core.model.system.dto.UserPasswordDto;
import com.boot.project.core.model.system.dto.UserSaveDto;
import com.boot.project.core.model.system.entity.User;
import com.boot.project.core.model.system.vo.UserVo;

import java.util.List;
import java.util.Map;

/**
 * @description:
 * @author: tsing
 * @create: 2021-01-21 22:21
 */
public interface UserService {

    /**
     * 分页条件查询
     * @param criteria 查询条件
     * @return
     */
    Page<UserVo> page(UserCriteria criteria);

    /**
     * 新增用户信息
     * @param userSaveDto 用户信息
     * @param salt 加密盐
     * @param password 密码
     */
    void add(UserSaveDto userSaveDto, String salt, String password);

    /**
     * 根据id查询用户信息
     * @param id 用户id
     * @return
     */
    User findOne(Long id);

    /**
     * 更新用户信息
     * @param userSaveDto 用户信息
     */
    void edit(UserSaveDto userSaveDto);

    /**
     * 批量删除用户信息
     * @param ids 用户id的集合
     */
    void delete(List<Long> ids);

    /**
     * 设置用户角色
     * @param dto 设置的信息
     */
    void assignRole(UserAssignDto dto);
}
